【小ネタ】Amazon DataZoneのドメインを再作成して環境作成時にdata lake administrator: invalid principal detected. エラー
はじめに
データ事業本部ビッグデータチームのkasamaです。Amazon DataZoneを検証していて、ドメインを一度削除し、再作成した際にブログタイトルのエラーとなったので、その対処方法を記載したいと思います。
事象
以下のフローで操作をしたところ、環境の作成に失敗しました。
- ドメインを削除
- 関連するIAM Role等の残リソースも削除
- ドメインを作成
- 環境をDataLakeProfileで作成を実行
Failed to add arn:aws:iam::<AWS_ACCOUNT_ID>:role/service-role/AmazonDataZoneGlueAccess-ap-northeast-1-dzd_xxxxxxxx as data lake administrator: invalid principal detected. Please check if an invalid principal is configured as a data lake administrator in account <AWS_ACCOUNT_ID> and region ap-northeast-1
対応
この一文だけだと詳細なエラー内容が把握できなかったため、CloudTrailを確認したところ、PutDataLakeSettings
イベントで詳細なエラーを見つけました。今回、権限を付与してほしいIAM Role名はsuffixが_xxxxxxxx
とAmazonDataZoneProvisioning
の2つです。ですが、suffixが_yyyyyyyy
である削除した過去のIAM Roleに対してもdataLakeAdmins
として権限を付与しようとしており、Invalid principal
となっていることがわかります。削除したIAM Roleに対して権限付与をしようとしていて、エラーになっているのですね。
"errorMessage": "Invalid principal, arn: arn:aws:iam::<AWS_ACCOUNT_ID>:role/service-role/AmazonDataZoneGlueAccess-ap-northeast-1-dzd_yyyyyyyy",
"requestParameters": {
"dataLakeSettings": {
"dataLakeAdmins": [
{
"dataLakePrincipalIdentifier": "arn:aws:iam::<AWS_ACCOUNT_ID>:role/service-role/AmazonDataZoneGlueAccess-ap-northeast-1-dzd_yyyyyyyy"
},
{
"dataLakePrincipalIdentifier": "arn:aws:iam::<AWS_ACCOUNT_ID>:role/service-role/AmazonDataZoneProvisioning-<AWS_ACCOUNT_ID>"
},
{
"dataLakePrincipalIdentifier": "arn:aws:iam::<AWS_ACCOUNT_ID>:role/service-role/AmazonDataZoneGlueAccess-ap-northeast-1-dzd_xxxxxxxx"
}
],
AWS Lake FormationのAdministrative roles and tasks
のData lake administrators
にInvalid
な削除したIAM Roleが残っていたのでこれが原因のようです。
上記の設定は不要なので更新ボタンの右のRemove
ボタンよりRevoke
しました。
そして改めて環境の削除、作成を実行したところ成功しました!
最後に
後からわかれば大したことない話ですが、結構時間を費やしたので同じような方の参考になれば幸いです。